package cn.dapeng.designPatterns.strategy.v2;

public class SorterV2 {

    /**
     * 对排序中，比较两个对象大小的逻辑，实现了compareTo方法(在Cat类实现中定义的)
     * 然后进行具体的排序
     *
     * @param array
     */
    public void sort(Cat[] array) {
        if (array == null || array.length < 1) return;
        int size = array.length;

        for (int i = 0; i < size; i++) {
            int minIndex = i;
            for (int j = i + 1; j < size; j++) {
                if (array[minIndex].compareTo(array[j]) > 0) {
                    minIndex = j;
                }
            }
            if (i != minIndex) {
                swap(array, i, minIndex);
            }
        }
    }

    /**
     * 交换数组的两个元素
     *
     * @param array
     * @param i
     * @param j
     */
    public void swap(Cat[] array, int i, int j) {
        Cat temp = array[j];
        array[j] = array[i];
        array[i] = temp;
    }


}
